<?php
/*
###########################################################################
#Esta obra es distribuida bajo los términos de la licencia GPL Versión 3.0#
###########################################################################
*/
class Estudiante_model extends CI_Model 
{
//////////////////////////////////////////////////////////////////////////////////////////////////////////
    function __construct()
    {        
        parent::__construct();
		
		$this->load->database();
    }
//////////////////////////////////////////////////////////////////////////////////////////////////////////	
	function obtenerNumListaPac()
	{
		return $this->db->count_all('core_estudiante');	
	}
//////////////////////////////////////////////////////////////////////////////////////////////////////////
	function obtenerListaPac($number_items,$offset)
	{
		$this->db->select(' 
  core_tercero.primer_apellido,
  core_tercero.segundo_apellido,
  core_tercero.primer_nombre,
  core_tercero.segundo_nombre,
  core_tercero.numero_documento,
  core_tipo_documentos.tipo_documento,
  core_estudiante.id_estudiante');
$this-> db -> from('core_estudiante');
$this-> db -> join('core_tercero','core_estudiante.id_tercero = core_tercero.id_tercero');
$this-> db -> join('core_tipo_documentos','core_tercero.id_tipo_documento = core_tipo_documentos.id_tipo_documento');

		$this->db->limit($number_items,$offset);
		$result = $this->db->get();
		return $result -> result_array();   	
	}
//////////////////////////////////////////////////////////////////////////////////////////////////////////
	function obtenerNumListaPacCon($d)
	{
		if(strlen($d['primer_apellido']) > 0){
		$this-> db -> like('core_tercero.primer_apellido',$d['primer_apellido']); }
		
		if(strlen($d['primer_nombre']) > 0){
		$this-> db -> like('core_tercero.primer_nombre',$d['primer_nombre']); }
		
		if(strlen($d['segundo_apellido']) > 0){
		$this-> db -> like('core_tercero.segundo_apellido',$d['segundo_apellido']); }
		
		if(strlen($d['segundo_nombre']) > 0){
		$this-> db -> like('core_tercero.segundo_nombre',$d['segundo_nombre']); }
		
		if(strlen($d['numero_documento']) > 0){
		$this-> db -> where('core_tercero.numero_documento',$d['numero_documento']); }
		
		$this->db->select(' 
  core_tercero.primer_apellido,
  core_tercero.segundo_apellido,
  core_tercero.primer_nombre,
  core_tercero.segundo_nombre,
  core_tercero.numero_documento,
  core_tipo_documentos.tipo_documento,
  core_estudiante.id_estudiante');
$this-> db -> from('core_estudiante');
$this-> db -> join('core_tercero','core_estudiante.id_tercero = core_tercero.id_tercero');
$this-> db -> join('core_tipo_documentos','core_tercero.id_tipo_documento = core_tipo_documentos.id_tipo_documento','left');
		$result = $this->db->get();
		return $result -> num_rows();
	}
//////////////////////////////////////////////////////////////////////////////////////////////////////////
	function obtenerListaPacCon($d,$number_items,$offset)
	{
		if(strlen($d['primer_apellido']) > 0){
		$this-> db -> like('core_tercero.primer_apellido',$d['primer_apellido']); }
		
		if(strlen($d['primer_nombre']) > 0){
		$this-> db -> like('core_tercero.primer_nombre',$d['primer_nombre']); }
		
		if(strlen($d['segundo_apellido']) > 0){
		$this-> db -> like('core_tercero.segundo_apellido',$d['segundo_apellido']); }
		
		if(strlen($d['segundo_nombre']) > 0){
		$this-> db -> like('core_tercero.segundo_nombre',$d['segundo_nombre']); }
		
		if(strlen($d['numero_documento']) > 0){
		$this-> db -> where('core_tercero.numero_documento',$d['numero_documento']); }
		
		$this->db->select(' 
  core_tercero.primer_apellido,
  core_tercero.segundo_apellido,
  core_tercero.primer_nombre,
  core_tercero.segundo_nombre,
  core_tercero.numero_documento,
  core_tipo_documentos.tipo_documento,
  core_estudiante.id_estudiante');
$this-> db -> from('core_estudiante');
$this-> db -> join('core_tercero','core_estudiante.id_tercero = core_tercero.id_tercero');
$this-> db -> join('core_tipo_documentos','core_tercero.id_tipo_documento = core_tipo_documentos.id_tipo_documento','left');
		$this->db->limit($number_items,$offset);
		$this-> db-> order_by("primer_apellido", "asc");
		$this-> db-> order_by("segundo_apellido", "asc");
		$result = $this->db->get();
		return $result -> result_array();
	}
//////////////////////////////////////////////////////////////////////////////////////////////////////////
	function verificarEstudiante($id_tercero)
	{
		$this -> db -> select('id_estudiante');
		$this -> db -> where('id_tercero',$id_tercero);
		$result = $this->db->get('core_estudiante');
		$num = $result -> num_rows();
		if($num == 0){
		return $num;}
		$res = $result -> row_array();
		return  $res['id_estudiante'];
	}
//////////////////////////////////////////////////////////////////////////////////////////////////////////	
	function tipos_usuario()
	{
		$result = $this -> db ->get('core_cobertura_salud');
		return $result -> result_array();
	}
//////////////////////////////////////////////////////////////////////////////////////////////////////////
	function obtenerEntidades()
	{
		$this -> db -> select('core_eapb.id_entidad,core_tercero.razon_social');
		$this -> db -> from('core_eapb');
		$this -> db -> join('core_tercero','core_eapb.id_tercero = core_tercero.id_tercero');
		$this -> db -> order_by('razon_social','ASC');
		$result = $this -> db -> get();
		return $result -> result_array();	
	}
//////////////////////////////////////////////////////////////////////////////////////////////////////////
	function obtenerTercero($id_tercero)
	{
	$this-> db -> select('core_tipo_documentos.tipo_documento,
  core_tercero.primer_apellido,
  core_tercero.segundo_apellido,
  core_tercero.id_tercero,
  core_tercero.primer_nombre,
  core_tercero.segundo_nombre,
  core_tercero.fecha_nacimiento,
  core_tercero.id_tipo_documento,
  core_tercero.numero_documento,
  core_tercero.departamento,
  core_tercero.municipio,
  core_municipio.nombre,
  core_departamento.nombre AS depa,
  core_tercero.vereda,
  core_tercero.zona,
  core_tercero.direccion,
  core_tercero.telefono,
  core_tercero.celular,
  core_tercero.fax,
  core_tercero.email,
  core_tercero.observaciones');
	$this-> db -> from('core_tipo_documentos');
	$this-> db->join('core_tercero','core_tercero.id_tipo_documento = core_tipo_documentos.id_tipo_documento','left');
	$this-> db->join('core_municipio','core_tercero.municipio = core_municipio.id_municipio','left');
	$this-> db->join('core_departamento','core_municipio.id_departamento = core_departamento.id_departamento','left');
	$this-> db -> where('id_tercero',$id_tercero);
	$result = $this->db->get();
	return $result -> row_array(); 
	}
//////////////////////////////////////////////////////////////////////////////////////////////////////////	
	function obtenerEstudianteConsulta($id_estudiante)
	{
		$this-> db -> where('id_estudiante',$id_estudiante);
		$result = $this->db->get('core_estudiante');
		return $result -> row_array(); 
	}
//////////////////////////////////////////////////////////////////////////////////////////////////////////
	function crearEstudianteDb($d)
	{
		$dat = array();
		$dat['error'] =	$error = false;
		$insert = array(
		'genero' => $d['genero'],
		'tipo_sangre' => $d['tipo_sangre'],
		'cod_banco' => $d['cod_banco'],
		'alergias' => $d['alergias'], 
		'medicamentos' => $d['medicamentos'], 	
		'observaciones' =>	$d['observaciones'],
		'fecha_creacion' =>	date('Y-m-d H:i:s'),
		'fecha_modificacion' =>	date('Y-m-d H:i:s'),
		'id_tercero' =>	$d['id_tercero'],
		'id_usuario' => $this -> session -> userdata('id_usuario'));
		$r = $this -> db -> insert('core_estudiante',$insert);
		if($r != 1){
			$error = true;
			return $dat['error'] = $error;}
		//----------------------------------------------------
		$dat['id_estudiante'] = $this->db->insert_id();
		//----------------------------------------------------
		//----------------------------------------------------
		return $dat;
	}
//////////////////////////////////////////////////////////////////////////////////////////////////////////
	function obtenerEstudiante($id_tercero)
	{
		$this->db->where('id_tercero',$id_tercero);
		$result = $this->db->get('core_estudiante');
		return $result -> row_array();
	}
//////////////////////////////////////////////////////////////////////////////////////////////////////////	
	function editarEstudianteDb($d)
	{
		$dat = array();
		$dat['error'] =	$error = false;
		$update = array(
		'genero' => $d['genero'], 	
		'tipo_sangre' => $d['tipo_sangre'], 
		'cod_banco' => $d['cod_banco'],
		'alergias' => $d['alergias'], 
		'medicamentos' => $d['medicamentos'], 		
		'observaciones' =>	$d['observaciones'],
		'fecha_creacion' =>	date('Y-m-d H:i:s'),
		'fecha_modificacion' =>	date('Y-m-d H:i:s'),
		'id_usuario' => $this -> session -> userdata('id_usuario'));
		$this -> db -> where('id_estudiante',$d['id_estudiante']);
		$r = $this -> db -> update('core_estudiante',$update);
		if($r != 1){
			$error = true;
			return $dat['error'] = $error;}
		//----------------------------------------------------
		//----------------------------------------------------
		return $dat;
	}
//////////////////////////////////////////////////////////////////////////////////////////////////////////
	function comprobarTercero($d)
	{
		if(strlen($d['primer_apellido']) > 2){
		$this-> db -> like('primer_apellido',$d['primer_apellido']); }
		
		if(strlen($d['primer_nombre']) > 2){
		$this-> db -> like('primer_nombre',$d['primer_nombre']); }
		
		if(strlen($d['segundo_apellido']) > 2){
		$this-> db -> like('segundo_apellido',$d['segundo_apellido']); }
		
		if(strlen($d['segundo_nombre']) > 2){
		$this-> db -> like('segundo_nombre',$d['segundo_nombre']); }
		
		if(strlen($d['fecha_nacimiento']) > 2){
		$this-> db -> like('fecha_nacimiento',$d['fecha_nacimiento']); }
		
		$this-> db-> order_by("primer_apellido", "asc");
		$this-> db-> order_by("segundo_apellido", "asc");
		
		$this-> db -> from('core_tipo_documentos');
		$this-> db->join('core_tercero', 'core_tipo_documentos.id_tipo_documento = core_tercero.id_tipo_documento');
		$result = $this -> db -> get();
		$num = $result -> num_rows();
		if($num == 0){
		return $num;}
		return $result -> result_array();	
	}
//////////////////////////////////////////////////////////////////////////////////////////////////////////
function obtenerParientes($id_estudiante)
{
	$this->db->select("core_acudiente.nombre,
	core_acudiente.id_pariente,
	core_acudiente.telefonos,
	core_acudiente.email,
	core_acudiente.ocupacion,
	core_parentesco.parentesco");
	$this->db->from("core_acudiente");
	$this->db->join('core_parentesco','core_acudiente.id_paren = core_parentesco.id_paren');
	$this->db->where("id_estudiante",$id_estudiante);
	$result = $this->db->get();
	$num = $result -> num_rows();
	if($num == 0){
		return $num;
	}
	return $result -> result_array();	
		
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////
}